#! /bin/bash
:<<!
  设置壁纸
!
# 设置壁纸
# [ -f ~/.dwm/dwm.png ] && feh --bg-fill ~/.dwm/dwm.png

# 随机选择文件夹下的一张jpg图片作为壁纸 
# feh --recursive --randomize --bg-fill ~/Pictures/wallpapers/*.jpg

# 随机选择文件列表的一个
# ls | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}' 
# 随机选择 文件列表中的.png或jpg的一个
# ls ~/Pictures/wallpapers | grep -E ".png|.jpeg|.jpg" | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}'
# 列出文件全路径
# ls -1 |awk '{print i$0}' i=`pwd`'/'

# 选择 文件列表中的.png或jpg的一个作为壁纸
# feh --bg-fill  ${HOME}"/Pictures/wallpapers/"$(ls ~/Pictures/wallpapers | grep -E ".png|.jpeg|.jpg" | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}' )
# 注：没有随机 一直固定那张

# source ~/.profile

# 到指定文件夹下查找一张图片，返回图片地址
function rand_get_picture(){
    # echo "[INFO] --- rand_get_picture ---"
    file_path=$1;
    # 得到结果数量
    # ls | wc -l  计算结果数量
    res1=`ls $file_path | grep -E ".png|.jpeg|.jpg" | wc -l`
    # echo $res1;
    # 产生1－结果数之间的一个随机数
    res2=$[RANDOM%$res1];
    # echo $res2;
    res3=`ls $file_path | grep -E ".png|.jpeg|.jpg" | awk NR=="$res2" `
    # echo $res3;

    echo $file_path"/"$res3;

    # [Shell脚本(三剑客 sed、awk、grep 案例)_Jerry00713的博客-CSDN博客](https://blog.csdn.net/Jerry00713/article/details/108197802)
    # [Shell函数返回值_AllardZhao的博客-CSDN博客_shell 函数返回值](https://blog.csdn.net/qq_37189082/article/details/121894595)
    # [使用awk命令获取文本的某一行，某一列_姥爷wvb的博客-CSDN博客_awk取第二行](https://blog.csdn.net/aywb1314/article/details/52239281)
    # [Linux常用命令之RANDOM_nsq1101的博客-CSDN博客_linux random](https://blog.csdn.net/weixin_45063703/article/details/117227856)
}

# picture_file_pwd=`rand_get_picture $HOME"/Pictures/wallpapers"`
# echo "$picture_file_pwd"

# 判断 ~/Pictures/wallpapers下是否有图片
if [ -x "$( which feh )" ]; then
    # echo "[INFO] 已经安装feh"
    if [[  -d ~/Pictures/wallpapers ]]; then 
        # echo "[INFO] 有 ~/Pictures/wallpapers"
        # feh --recursive --randomize --bg-fill ~/Pictures/wallpapers/*.jpg
        # feh --bg-fill  ${HOME}"/Pictures/wallpapers/"$(ls ~/Pictures/wallpapers | grep -E ".png|.jpeg|.jpg" | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}' )
        picture_file_pwd=`rand_get_picture $HOME"/Pictures/wallpapers"`
        feh --bg-fill $picture_file_pwd
    # elif [[ -d ~/.dwm/wallpapers/ ]]; then
    elif [[ -d ~/.dwm/wallpapers/ ]]; then
        # echo "[INFO] 有 ~/.dwm/wallpapers"
        # feh --recursive --randomize --bg-fill ~/.dwm/wallpapers/*.jpg
        # feh --randomize --bg-fill ~/.dwm/wallpapers/*.jpg
        # feh --bg-fill  ${HOME}"/.dwm/wallpapers/"$(ls ~/.dwm/wallpapers | grep -E ".png|.jpeg|.jpg" | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}' )
        picture_file_pwd=`rand_get_picture $HOME"/.dwm/wallpapers"`
        feh --bg-fill $picture_file_pwd
    elif [[ -f ~/.dwm/dwm.png  ]]; then
        # echo "[INFO] 有~/.dwm/dwm.png"
        feh --bg-fill ~/.dwm/dwm.png
    else
        echo "[INFO] 没有相应目录没有壁纸"
    fi
else
    echo "[INFO] 没有安装feh"
fi

# [shell中的if语句_零下9℃的博客-CSDN博客](https://blog.csdn.net/wxx_0124/article/details/95305625)

# 随机选择文件列表的一个
# ls | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}' 
# 随机选择 文件列表中的.png或jpg的一个
# ls ~/Pictures/wallpapers | grep -E ".png|.jpeg|.jpg" | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}'
# 列出文件全路径
# ls -1 |awk '{print i$0}' i=`pwd`'/'
# 随机选择 文件列表中的.png或jpg的一个作为壁纸
# feh --bg-fill  ${HOME}"/Pictures/wallpapers/"$(ls ~/Pictures/wallpapers | grep -E ".png|.jpeg|.jpg" | awk '{ line[NR]=$0 } END { print line[(int(rand()*NR+1))]}' )

# [精通awk系列(10)：awk筛选行和处理字段的示例](http://www.ty2y.com/study/jtawkxl10awksxhhclzddsl.html)

# case $WALLPAPER_MODE in
#     PIC)
#         # feh --randomize --bg-fill ~/Pictures/wallpapers/*.png
#         # 随机选择文件夹下的一张图片作为壁纸 
#         feh --recursive --randomize --bg-fill ~/Pictures/wallpapers
#         ;;
#     MP4)
#         killall mpv >> /dev/null 2>&1
#         killall xwinwrap >> /dev/null 2>&1
#         sleep 0.2
#         case $SCREEN_MODE in
#             ONE) mp4=~/Pictures/mp4/1/wallpaper_one.mp4;;
#             *) mp4=~/Pictures/mp4/1/wallpaper_two.mp4;;
#         esac
#         xwinwrap -fs -nf -ov -- mpv -wid WID --loop --no-osc --no-osd-bar --input-vo-keyboard=no --really-quiet --no-stop-screensaver $mp4 >> /dev/null 2>&1 &
#         ;;
# esac
